/**
 * 用户管理模块
 */

const router = require('koa-router')()
const jwt = require('jsonwebtoken')
const User = require('../models/userSchema')
const util = require('../utils/util')
router.prefix('/user')

router.post('/login', async (ctx, next) => {
    try {
        // 获取前端post请求数据，ctx.request.body中取
        const { userName, userPwd } = ctx.request.body
        /**
         * 返回数据库指定字段，有三种方式
         * 1.'userId userName userEmail state role deptId roleList'
         * 2. {userId: 1, _id:0}
         * 3. User.findOne().select('userId')
         */
        const res = await User.findOne({
            userName,
            userPwd
        }, 'userId userName userEmail state role deptId roleList')

        if (res) {
            const data = res._doc
            const token = jwt.sign({
                data: data
            }, 'imooc', { expiresIn: '1h' })
            data.token = token
            console.log(data)
            ctx.body = util.success(data)
        } else {
            ctx.body = util.fail('账号或密码不正确')
        }
    } catch (err) { // 当查询数据库报错时，会触发catch(err){}
        ctx.body = util.fail(err.msg)
    }
})



module.exports = router